home *** CD-ROM | disk | FTP | other *** search
Wrap
'************************************************************************** '* MSSetup Toolkit Sample 1 '************************************************************************** '$DEFINE DEBUG ''Define for script development/debugging '$INCLUDE 'setupapi.inc' '$INCLUDE 'mscpydis.inc' ''System '$INCLUDE 'msdetect.inc' GLOBAL DDBFILE$ GLOBAL PROGMAN_GROUP$ GLOBAL PROGMAN_ITEM$ GLOBAL USER_PATH$ GLOBAL DISKETTE$ GLOBAL PUBLISHER_ICON$ GLOBAL ALLOW_NETWORK$ GLOBAL REMOVE_PREVIOUS$ GLOBAL NETEXIST$ GLOBAL VIDEO$ REMOVE_PREVIOUS$ = "1" '$INCLUDE 'insight.inc' '$INCLUDE 'insnet.inc' ''Dialog ID's CONST WELCOME = 100 CONST ASKQUIT = 200 CONST DESTPATH = 300 CONST EXITFAILURE = 400 CONST EXITQUIT = 600 CONST EXITSUCCESS = 700 CONST OPTIONS = 800 CONST APPHELP = 900 CONST RESTARTI = 2600 CONST RESTARTII = 2700 CONST VIDEOUPDATA = 2800 CONST BADPATH = 6400 CONST BIGOPTIONS = 4000 CONST EXECUTABLES = 4100 CONST DEMOS = 4200 CONST NETWORK = 4300 CONST NETPATH = 4400 CONST DISKSPACE = 4500 CONST BADDRIVE = 6500 CONST BADDRIVE1 = 6510 CONST BADDRIVE2 = 6520 CONST CDDRIVE = 6600 CONST DISKDRIVE = 6700 CONST ADDUSER = 6800 ''Bitmap ID CONST LOGO = 1 ''Query Performance CONST BASIC = 1 CONST FAST = 2 CONST VERYFAST = 3 GLOBAL DEFDEST$ ''Default destination directory. GLOBAL NETDEST$ ''Network destination directory. GLOBAL DRIVE$ ''CD-ROM Drive. GLOBAL OPTCUR$ ''Option selection from option dialog. GLOBAL MYSTR$ ''Just a string. GLOBAL NET$ ''If Network installation than "ON" else "OFF" GLOBAL WinDir$ GLOBAL WinSysDir$ DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING DECLARE FUNCTION GetDirectory (szPath$) AS STRING DECLARE FUNCTION ModifyDDB LIB "mscuistf.dll" (szFile$, szNew$, d%) AS INTEGER DECLARE FUNCTION ModifyNetDDB LIB "mscuistf.dll" (szInFile$, szOutFile$, szCD$) AS INTEGER DECLARE FUNCTION RemoveInsightFiles LIB "mscuistf.dll" (szRemove$) AS INTEGER DECLARE FUNCTION LongToAscii LIB "mscuistf.dll" (lNum&,szStr$) AS LONG DECLARE FUNCTION InsightMessageBox LIB "mscuistf.dll" (szStr$) AS INTEGER DECLARE FUNCTION OnWindowsNT LIB "INIUPD.DLL" AS INTEGER DECLARE FUNCTION VflatdPresent LIB "iniupd.DLL" AS INTEGER DECLARE SUB Reboot LIB "iniupd.dll" DECLARE FUNCTION ExitWindowsExec LIB "User" (Exec$, Param$) AS INTEGER DECLARE FUNCTION RebuildBigFiles LIB "mscuistf.dll" (Dest$) AS INTEGER DECLARE FUNCTION ShowMaximize LIB "mscuistf.dll" (hwnd%) AS INTEGER DECLARE SUB Install (ftype%,Src$,Dest$,fnet%) DECLARE SUB AddOptFilesToCopyList (ftype%,Src$,Dest$) DECLARE SUB RecalcOptFiles (ftype%) DECLARE SUB AddInsightUser (wrkparm$,netparm$,cd$) INIT: CUIDLL$ = "mscuistf.dll" ''Custom user interface dll HELPPROC$ = "FHelpDlgProc" ''Help dialog procedure wnd% = HwndFrame() SetBitmap CUIDLL$, LOGO SetTitle "INSIGHT into Information - setup" wnd% = HwndFrame() IF wnd% <> 0 THEN i% = ShowMaximize(wnd%) END IF szInf$ = GetSymbolValue("STF_SRCINFPATH") IF szInf$ = "" THEN szInf$ = GetSymbolValue("STF_CWDDIR") + "INSIGHT.INF" END IF ReadInfFile szInf$ OPTCUR$ = "1" DEFDEST$ = USER_PATH$ '$IFDEF DEBUG i% = SetSizeCheckMode(scmOnIgnore) '' could use scmOff; def = scmOnFatal WinDrive$ = MID$(GetWindowsDir, 1, 1) IF IsDriveValid(WinDrive$) = 0 THEN i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK) GOTO QUIT END IF '$ENDIF ''DEBUG WinDir$ = GetWindowsDir() WinSysDir$ = GetWindowsSysDir() IF VIDEO$ = "1" THEN WIN32ENABLED% = 0 MajorVer% = GetWindowsMajorVersion() MinorVer% = GetWindowsMinorVersion() IF MajorVer% < 3 OR (MajorVer% = 3 AND MinorVer% < 10) THEN i% = DoMsgBox("Microsoft Windows version 3.10 or greater is required for this software. Please upgrade your version of Windows.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND) END END IF IF OnWindowsNT() THEN i% = DoMsgBox("This version of Video for Windows does not run on Windows NT.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND) END END IF END IF '' VIDEO WELCOME: sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$) IF sz$ = "CONTINUE" THEN UIPop 1 ELSE GOSUB ASKQUIT GOTO WELCOME END IF '************************************************************************** '** Check if this is an addition of user to exsiting installation '************************************************************************** IF NETEXIST$ = "YES" THEN NET$ = "ON" GOTO MAINOPTIONS END IF IF ALLOW_NETWORK$ <> "1" THEN NET$ = "OFF" GOTO PATHS END IF '************************************************************************** '** Do you want a Network version ??? ** '************************************************************************** NETWORK: SetSymbolValue "CheckItemsIn", "" AddListItem "CheckItemsIn", "OFF" GETNETWORK: sz$ = UIStartDlg(CUIDLL$, NETWORK, "FCheckDlgProc", APPHELP, HELPPROC$) NET$ = GetListItem ("CheckItemsOut",1) IF sz$ = "CONTINUE" THEN UIPop(1) ELSEIF sz$ = "REACTIVATE" THEN GOTO GETNETWORK ELSEIF sz$ = "BACK" THEN UIPop 1 GOTO WELCOME ELSE GOSUB ASKQUIT GOTO NETWORK END IF PATHS: '************************************************************************** '** What is the path to install the application into ??? ** '************************************************************************** SetSymbolValue "EditTextIn", DEFDEST$ SetSymbolValue "EditFocus", "END" GETPATH: SetSymbolValue "EditTextLimit", "" sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$) DEFDEST$ = GetSymbolValue("EditTextOut") IF sz$ = "CONTINUE" THEN IF IsDirWritable(DEFDEST$) = 0 THEN GOSUB BADPATH GOTO GETPATH ELSEIF IsDriveNetwork(MID$(DEFDEST$,1,1)) = 1 THEN GOSUB BADDRIVE1 GOTO GETPATH END IF UIPop 1 ELSEIF sz$ = "REACTIVATE" THEN GOTO GETPATH ELSEIF sz$ = "BACK" THEN UIPop 1 GOTO WELCOME ''NETWORK ELSE GOSUB ASKQUIT GOTO GETPATH END IF '************************************************************************** '** What is the network path to install the network components into ** '************************************************************************** IF NET$ = "ON" THEN SetSymbolValue "EditTextIn", "" SetSymbolValue "EditFocus", "END" GETNETPATH: SetSymbolValue "EditTextLimit", "" sz$ = UIStartDlg(CUIDLL$, NETPATH, "FEditDlgProc", APPHELP, HELPPROC$) NETDEST$ = GetSymbolValue("EditTextOut") '' x% = InsightMessageBox("Network Path "+NETDEST$) IF sz$ = "CONTINUE" THEN IF IsDirWritable(NETDEST$) = 0 THEN GOSUB BADPATH GOTO GETNETPATH '' ELSEIF IsDriveLocalHard(MID$(NETDEST$,1,1)) = 1 THEN '' sz1$ = UIStartDlg(CUIDLL$, BADDRIVE2, "FInfo0DlgProc", 0, "") '' IF sz1$ = "BACK" THEN '' GOTO GETNETPATH '' END IF '' UIPop 1 END IF UIPop 1 ELSEIF sz$ = "REACTIVATE" THEN GOTO GETNETPATH ELSEIF sz$ = "BACK" THEN UIPop 1 GOTO PATHS ELSE GOSUB ASKQUIT GOTO GETNETPATH END IF END IF '' NET$ '************************************************************************** '** Get a CD-ROM drive letter ** '************************************************************************** IF DISKETTE$ = "0" THEN SetSymbolValue "EditTextIn", "Z" ELSE SetSymbolValue "EditTextIn", "A" END IF SetSymbolValue "EditFocus", "END" GETDRIVE: SetSymbolValue "EditTextLimit", "1" IF DISKETTE$ = "0" THEN sz$ = UIStartDlg(CUIDLL$, CDDRIVE, "FEditDlgProc", APPHELP, HELPPROC$) ELSE sz$ = UIStartDlg(CUIDLL$, DISKDRIVE, "FEditDlgProc", APPHELP, HELPPROC$) END IF DRIVE$ = GetSymbolValue("EditTextOut") IF sz$ = "CONTINUE" THEN IF IsDriveValid(DRIVE$) = 0 THEN GOSUB BADDRIVE GOTO GETDRIVE END IF UIPop 1 ELSEIF sz$ = "REACTIVATE" THEN GOTO GETPATH ELSEIF sz$ = "BACK" THEN UIPop 1 GOTO PATHS ELSE GOSUB ASKQUIT GOTO GETDRIVE END IF '' x% = InsightMessageBox ("After CD Drive") IF NET$ = "ON" THEN dstdrive$ = MID$(NETDEST$,1,1) ELSE dstdrive$ = MID$(DEFDEST$,1,1) END IF TMPDEST$ = dstdrive$ + ":\MYDEMO" SrcDir$ = GetSymbolValue("STF_SRCDIR") ndrive% = ASC(ucase$(dstdrive$)) - ASC("A") + 1 IF REMOVE_PREVIOUS$ = "1" THEN CursorSave% = ShowWaitCursor() lastinstall$ = FindFileInTree(DDBFILE$+".IDX",dstdrive$+":\") RestoreCursor CursorSave% '' i% = InsightMessageBox("Last Install "+lastinstall$) szRemove$ = GetDirectory(lastinstall$) IF lastinstall$ <> "" THEN i% = DoMsgBox("Previous version was found in "+szRemove$+" ! Remove that directory ?","Remove Previous Version",MB_ICONQUESTION+MB_YESNO) IF i% = 6 THEN '' IDYES id 6 in windows.h '' i% = InsightMessageBox("before remove "+szRemove$) i% = RemoveInsightFiles(szRemove$) END IF END IF END IF IF VIDEO$ = "1" THEN I% = DoesIniKeyExist (WinDir$ + "system.ini", "mci" , "AVIVideo" ) IF I% <> 0 THEN sz$ = UIStartDlg(CUIDLL$, VIDEOUPDATA, "FInfoDlgProc", APPHELP, HELPPROC$) UIPop 1 IF sz$ = "EXIT" THEN VIDEO$ = "0" END IF END IF END IF MAINOPTIONS: IF DISKETTE = "0" THEN GOSUB INSTOPTIONS ELSE GOSUB INSTDISKETTE END IF GOTO QUIT '************************************************************************** '** Diskette installation ** '************************************************************************** INSTDISKETTE: ''OpenLogFile "C:\LOGFILE.OUT", 0 ClearCopyList AddOptFilesToCopyList 0, SrcDir$, TMPDEST$ cost& = GetCopyListCost("" , "Costs", "Neededs") OptCost$ = GetListItem ("Costs", ndrive%) ''WriteToLogFile "Cost "+OptCost$ OptCost$ = STR$(VAL(OptCost$)/1000) LeftAfter& = VAL(GetListItem("Neededs", ndrive%)) IF LeftAfter& > 0 THEN x% = InsightMessageBox ("No space on disk") RETURN END IF Install 0 , SrcDir$ , DEFDEST$ , 0 '' Installation from diskettes IF VIDEO$ = "1" THEN GOSUB WINRESTART END IF ''CloseLogFile RETURN '************************************************************************** '** Calculate space required and get the desired configuration ** '************************************************************************** INSTOPTIONS: IF NETEXIST$ = "YES" THEN GOTO HANDLEUSER END IF CursorSave% = ShowWaitCursor() '' OpenLogFile "C:\LOGFILE.OUT", 0 SetSymbolValue "StatusItemsText", "" SetSymbolValue "SpaceLeft", "" FOR i% = 1 TO 3 STEP 1 ClearCopyList AddOptFilesToCopyList i% , SrcDir$, TMPDEST$ cost& = GetCopyListCost("" , "Costs", "Neededs") OptCost$ = GetListItem ("Costs", ndrive%) OptCost$ = STR$(VAL(OptCost$)/1000) AddListItem "StatusItemsText", OptCost$ + " K" LeftAfter& = VAL(GetListItem("Neededs", ndrive%)) IF LeftAfter& > 0 THEN AddListItem "SpaceLeft", "0" '*** Gray the option ELSE LeftAfter& = -LeftAfter& AddListItem "SpaceLeft", STR$(LeftAfter&/1000) END IF '' WriteToLogFile STR$(i%) + " " + OptCost$ + " " + STR$(LeftAfter&) NEXT i% RestoreCursor CursorSave% SetSymbolValue "RadioDefault", "3" sp$ = "3" CALC: SetSymbolValue "Status", "Space left after installation " + GetListItem("SpaceLeft" , VAL(sp$)) + " K" '' WriteToLogFile GetSymbolValue("Status") sz$ = UIStartDlg(CUIDLL$, DISKSPACE, "FCust2DlgProc", APPHELP, HELPPROC$) sp$ = GetSymbolValue ("ButtonChecked") SetSymbolValue "RadioDefault", sp$ IF sz$ = "CONTINUE" THEN UIPop(1) ELSEIF sz$ = "REACTIVATE" THEN GOTO CALC ELSEIF sz$ = "1" THEN GOTO CALC ELSEIF sz$ = "2" THEN GOTO CALC ELSEIF sz$ = "3" THEN GOTO CALC ELSE GOSUB ASKQUIT GOTO INSTOPTIONS END IF LeftFinal& = VAL(GetListItem("SpaceLeft", VAL(sp$))) IF LeftFinal& < 2 THEN i% = DoMsgBox("Not enough space for installation","Space Problem",MB_OK) GOSUB ASKQUIT GOTO INSTOPTIONS END IF '' CloseLogFile IF NET$ = "ON" THEN Install VAL(sp$) , SrcDir$ , NETDEST$ , 1 '' after this point insnet.inc with NETEXIST$="YES" exists in nework ELSE Install VAL(sp$) , SrcDir$ , DEFDEST$ , 0 END IF '' x% = InsightMessageBox ("Before Add User") HANDLEUSER: IF NET$ = "ON" THEN '' Show Add User Dialog SetSymbolValue "WorkIn", DEFDEST$ SetSymbolValue "NetIn", NETDEST$ SetSymbolValue "CdIn", DRIVE$ GETNETPATHES: sz$ = UIStartDlg(CUIDLL$, ADDUSER, "FEditNetPathesDlgProc", APPHELP, HELPPROC$) WORK$ = GetSymbolValue("WorkOut") NETDEST$ = GetSymbolValue("NetOut") DRIVE$ = GetSymbolValue("CdOut") IF sz$ = "CONTINUE" THEN IF DoesDirExist(NETDEST$) = 0 THEN GOSUB BADPATH GOTO GETNETPATHES ELSEIF IsDriveValid(ucase$(MID$(WORK$,1,1))) = 0 THEN GOSUB BADDRIVE GOTO GETNETPATHES ELSEIF IsDriveValid(ucase$(MID$(DRIVE$,1,1))) = 0 THEN GOSUB BADDRIVE GOTO GETNETPATHES END IF UIPop 1 ELSEIF sz$ = "REACTIVATE" THEN GOTO GETNETPATHES ELSE GOSUB ASKQUIT GOTO GETNETPATHES END IF AddInsightUser WORK$,NETDEST$,DRIVE$ END IF IF VIDEO$ = "1" THEN GOSUB WINRESTART END IF RETURN WINRESTART: '' Restart Windows: if it has to updates ACM from DOS, it restarts Windows automatically '' else, it gives the user the choice RESTRT% = RestartListEmpty () Exe$ = GetWindowsDir() + "_msrstrt.exe" Batch$ = GetWindowsDir() + "_mssetup.bat" empty$ = "" RESTART: IF RESTRT% = 0 THEN sz$ = UIStartDlg(cuidll$, RESTARTI, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO RESTART ENDIF I% = ExitExecRestart () RemoveFile Exe$, cmoForce RemoveFile Batch$, cmoForce END ELSE sz$ = UIStartDlg(CUIDLL$, RESTARTII, "FQuitDlgProc", 0, "") IF sz$ = "CONTINUE" THEN I% = ExitWindowsExec (Exe$, empty$) IF I% = 0 THEN GOTO RESTART ELSE END ENDIF ELSEIF sz$ = "EXIT" THEN UIPopAll END ELSEIF sz$ = "REACTIVATE" THEN GOTO RESTART ELSE UIPop 1 END IF END IF RETURN QUIT: ON ERROR GOTO ERRQUIT IF ERR = 0 THEN dlg% = EXITSUCCESS ELSEIF ERR = STFQUIT THEN dlg% = EXITQUIT ELSE dlg% = EXITFAILURE END IF QUITL1: sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO QUITL1 END IF UIPop 1 END ERRQUIT: i% = DoMsgBox("Setup sources were corrupted, call 777-7777!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND) END BADPATH: sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO BADPATH END IF UIPop 1 RETURN BADDRIVE: sz$ = UIStartDlg(CUIDLL$, BADDRIVE, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO BADDRIVE END IF UIPop 1 RETURN BADDRIVE1: sz$ = UIStartDlg(CUIDLL$, BADDRIVE1, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO BADDRIVE1 END IF UIPop 1 RETURN BADDRIVE2: sz$ = UIStartDlg(CUIDLL$, BADDRIVE2, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO BADDRIVE2 END IF UIPop 1 RETURN ASKQUIT: sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "") IF sz$ = "EXIT" THEN UIPopAll ERROR STFQUIT ELSEIF sz$ = "REACTIVATE" THEN GOTO ASKQUIT ELSE UIPop 1 END IF RETURN '** '** Purpose: '** Builds the copy list and performs all installation operations. '** Arguments: '** none. '** Returns: '** none. '************************************************************************* SUB Install (ftype%,Src$,Dest$,fnet%) STATIC SrcDir$ = GetSymbolValue("STF_SRCDIR") CreateDir Dest$, cmoNone OpenLogFile MakePath(Dest$, "LOGFILE.OUT"), 0 '***************************************************' '** Copy DLL to local windows directory **' '***************************************************' ''IF fnet% = 0 THEN '' bwcc$ = MakePath(SrcDir$,"BWCC.DLL") '' CopyFile bwcc$,GetWindowsSysDir()+"BWCC.DLL",cmoOverwrite,0 '' scale$ = MakePath(SrcDir$,"SCALEBAR.DLL") '' CopyFile scale$,GetWindowsSysDir()+"SCALEBAR.DLL",cmoOverwrite,0 '' insbtn$ = MakePath(SrcDir$,"INSBTN.DLL") '' CopyFile insbtn$,GetWindowsSysDir()+"INSBTN.DLL",cmoOverwrite,0 ''END IF ini$ = GetWindowsDir()+"INSIGHT.INI" '************************************************************************** '** Copy relevant files to hard disk ** '************************************************************************** SetRestartDir WinDir$ ClearCopyList AddOptFilesToCopyList ftype%,Src$,Dest$ IF fnet% = 1 THEN AddSectionFilesToCopyList "Setup", Src$, Dest$ END IF i% = SetCopyMode(1) SetCopyGaugePosition -1,90 CopyFilesInCopyList IF fnet% = 1 THEN '' i% = InsightMessageBox("Before Open") OPEN MakePath(Dest$,"INSNET.INC") FOR OUTPUT AS #2 PRINT #2 , "NETEXIST$=""YES""" CLOSE #2 '' i% = CreateInsNet(Dest$+"INSNET.INC") GOTO ENDINSTALL END IF '************************************************************************** '** Modify .DDB ** '************************************************************************** DDBOUTFILE$ = MakePath(Dest$,DDBFILE$+".DDB") IF DISKETTE$ = "1" THEN '' copy .DDB to .TMP DDBINFILE$ = MakePath(Dest$,DDBFILE$+".TMP") CopyFile DDBOUTFILE$,DDBINFILE$,cmoOverwrite,0 '' DDB -> TMP ELSE DDBINFILE$ = DRIVE$+":\"+DDBFILE$+".DDB" '' DDBINFILE$ = DRIVE$+":\setup\"+DDBFILE$+".DDB" '' For DEBUG ONLY END IF WriteToLogFile "In: "+DDBINFILE$ WriteToLogFile "Out: "+DDBOUTFILE$ IF DISKETTE$ = "0" THEN i% = ModifyDDB(DDBINFILE$, DDBOUTFILE$, 0) ELSE i% = ModifyDDB(DDBINFILE$, DDBOUTFILE$, 1) END IF x% = RebuildBigFiles( Dest$ ) '************************************************************************** '** Create Insight Group (or end product group) ** '************************************************************************** CreateProgmanGroup PROGMAN_GROUP$, "", cmoNone ShowProgmanGroup PROGMAN_GROUP$, 1, cmoNone '************************************************************************** '** Create Product Icon (Program Manager Item) ** '************************************************************************** ins$ = MakePath(Dest$,"insight.exe") WORKING$ = Dest$ IF PUBLISHER_ICON$ = "1" THEN iconpath$ = MakePath(WORKING$,"ICON.ICO") wd$ = iconpath$+",0,,,"+WORKING$ '' i% = DoMsgBox("wd - "+wd$,"DEBUG",MB_OK) ELSE wd$ = ",,,,"+WORKING$ END IF CreateProgmanItem PROGMAN_GROUP$, PROGMAN_ITEM$, ins$+" /r "+DDBFILE$+".ddb" , wd$, cmoOverwrite IF VIDEO$ = "1" THEN ''Updating WIN.INI and SYSTEM.INI IF VflatdPresent() = 0 THEN CreateSysIniKeyValue WinDir$ + "system.ini", "386Enh", "device", "dva.386", cmoOverwrite END IF CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.CVID", "iccvid.drv", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MSVC", "msvidc.drv", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV31", "indeov.drv", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MRLE", "MSRLE.drv", cmoOverwrite I% = DoesIniKeyExist (WinDir$ + "system.ini", "Drivers", "VIDC.RT21") IF I% = 0 THEN CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.RT21", "indeov.drv", cmoOverwrite END IF CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.YVU9", "indeov.drv", cmoOverwrite CreateIniKeyValue WinDir$ + "WIN.INI", "mci extensions", "avi", "AVIVideo", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "mci", "AVIVideo", "mciavi.drv", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "WaveMapper", "msacm.drv", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.msadpcm", "msadpcm.acm", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.imaadpcm", "imaadpcm.acm", cmoOverwrite CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msacm.drv", "Microsoft Sound Mapper V2.00", cmoOverwrite CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msadpcm.acm", "Microsoft ADPCM Codec V2.00", cmoOverwrite CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "imaadpcm.acm", "Microsoft IMA ADPCM Codec V2.00", cmoOverwrite Run ("regedit.exe /s " + MakePath(WinDir$, "mplayer.reg")) Run ("regedit.exe /s " + MakePath(WinSysDir$, "OLE2.reg")) Run ("regedit.exe /s " + MakePath(WinSysDir$, "cleanup.reg")) '' Mplayer CreateProgmanItem "Accessories", "Media Player", MakePath(WinDir$, "mplayer.exe"), "", cmoOverwrite Run ("profdisp.exe") END IF '' VIDEO CloseLogFile ENDINSTALL: IF fnet% = 1 THEN infsrc$ = MakePath(Src$,"INSIGHT.INF") infdst$ = MakePath(Dest$,"INSIGHT.INF") CopyFile infsrc$,infdst$,cmoOverwrite,0 incsrc$ = MakePath(Src$,"INSIGHT.INC") incdst$ = MakePath(Dest$,"INSIGHT.INC") CopyFile incsrc$,incdst$,cmoOverwrite,0 END IF END SUB SUB AddInsightUser (wrkparm$,netparm$,cd$) STATIC CreateDir wrkparm$, cmoNone DDBINFILE$ = MakePath(netparm$,DDBFILE$+".DDB") DDBOUTFILE$ = MakePath(wrkparm$,DDBFILE$+".DDB") '' i% = DoMsgBox("Out File is "+DDBOUTFILE$, "DEBUG", MB_ICONHAND+MB_OK) i% = ModifyNetDDB(DDBINFILE$,DDBOUTFILE$,cd$) CursorSave% = ShowWaitCursor() annotsrc$ = MakePath(netparm$,"ANNOT.IDX") annotdst$ = MakePath(wrkparm$,"ANNOT.IDX") CopyFile annotsrc$,annotdst$,cmoOverwrite,0 RestoreCursor CursorSave% CreateProgmanGroup PROGMAN_GROUP$, "", cmoNone ShowProgmanGroup PROGMAN_GROUP$, 1, cmoNone ins$ = MakePath(netparm$,"insight.exe") WORKING$ = netparm$ IF PUBLISHER_ICON$ = "1" THEN iconpath$ = MakePath(netparm$,"ICON.ICO") wd$ = iconpath$+",0,,,"+WORKING$ '' i% = DoMsgBox("wd - "+wd$,"DEBUG",MB_OK) ELSE wd$ = ",,,,"+WORKING$ END IF CreateProgmanItem PROGMAN_GROUP$, PROGMAN_ITEM$, ins$+" /r "+DDBOUTFILE$ , wd$, cmoOverwrite END SUB '** '** Purpose: '** Adds the specified option files to the copy list. '** Arguments: '** ftype% - type of files to add, one of the following: '** BASIC, FAST, VERYFAST '** Returns: '** none. '************************************************************************* SUB AddOptFilesToCopyList (ftype%,Src$,Dest$) STATIC IF VIDEO = "1" THEN AddSectionFilesToCopyList "VfW Runtime", Src$, WinSysDir$ AddSectionFilesToCopyList "OLE2", Src$, WinSysDir$ AddSectionFilesToCopyList "ACM Drivers", Src$, WinSysDir$ AddSectionFilesToCopyList "MPlayer", Src$, WinDir$ AddSectionFilesToCopyList "AVICodecs", Src$, WinSysDir$ AddSectionFilesToCopyList "Indeo-ini", Src$, WinDir$ END IF IF ftype% = 0 THEN AddSectionFilesToCopyList "DLL", Src$, Dest$ AddSectionFilesToCopyList "Files", Src$, Dest$ GOTO ENDADD END IF AddSectionFilesToCopyList "Files", Src$, Dest$ AddSectionFilesToCopyList "DLL", Src$, Dest$ AddSectionFilesToCopyList "Basic", Src$, Dest$ IF ftype% > BASIC THEN AddSectionFilesToCopyList "Fast", Src$ , Dest$ IF ftype% > FAST THEN AddSectionFilesToCopyList "Fastest", Src$ , Dest$ END IF END IF ENDADD: END SUB '** '** Purpose: '** Appends a file name to the end of a directory path, '** inserting a backslash character as needed. '** Arguments: '** szDir$ - full directory path (with optional ending "\") '** szFile$ - filename to append to directory '** Returns: '** Resulting fully qualified path name. '************************************************************************* FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING IF szDir$ = "" THEN MakePath = szFile$ ELSEIF szFile$ = "" THEN MakePath = szDir$ ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN MakePath = szDir$ + szFile$ ELSE MakePath = szDir$ + "\" + szFile$ END IF END FUNCTION FUNCTION GetDirectory(szPath$) STATIC AS STRING IF szPath$ = "" THEN GetDirectory = "" ELSE FOR i% = LEN(szPath$) TO 1 STEP -1 IF MID$(szPath$,i%,1) = "\" THEN GOTO FINISHGETDIRECTORY END IF NEXT i% FINISHGETDIRECTORY: GetDirectory = MID$(szPath$,1,i%-1) END IF END FUNCTION